-
Notifications
You must be signed in to change notification settings - Fork 13.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoidance Interface CI #10780
Avoidance Interface CI #10780
Conversation
@mrivi I see a couple options to make this work.
I'm leaning toward option 1, but have no problem with option 2. 2 is better if you need all the other things that go on after the test runs, such as upload to Flight Review and run the ECL script. I'm not thinking you need or want all the other things, which is why I'm thinking option 1. You just want to run the test, correct? |
@lamping7 I think point 2 is more future proof in case we want to have more complicated tests. For the test we have to run now point 1 is enough. Does point 2 require much more effort? |
@mrivi I did option 2. Jenkins is fine with the test now, but there seems to be other issues. Take a look at http://ci.px4.io:8080/blue/organizations/jenkins/PX4_misc%2FFirmware-SITL_tests/detail/pr-avoidance_ci_rebased/13/pipeline/82 and https://logs.px4.io/plot_app?log=69c95f98-26a4-4d87-a739-73c6baa97fc2 |
@lamping7 thank you!!! I think the problem is that the avoidance is not enabled (param MPC_OBS_AVOID is not set to 1). I'll quickly try to set that in the iris config. I think we need another iris vehicle config (like those |
I'm seeing this in the output:
and
|
Awesome. The Jenkins failure is another data link lost issue. |
03bb007
to
0ab3a34
Compare
@dagar good to merge? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm good with all the Jenkins details, but have questions about the .plan
and mission. I pulled up the log from the last run in Jenkins.
- From what I can see the vehicle gets airborne, and only flies for about 10 sec in a straight line. A mission this short causes problems with the ECL script. Can we make this longer?
- Is the avoidance causing it to drop in altitude at the end?
- Sorry, I haven't used the avoidance. Where is the obstacle defined (the world?) and where is it in relation to the flight path?
- Do you have a log and a screenshot of the completed flight path from QGC so we know what to expect to see here?
- Do we want the vehicle to land so that the log gets closed cleanly?
.ci/Jenkinsfile-SITL_tests
Outdated
@@ -127,6 +127,13 @@ pipeline { | |||
mission: "VTOL_mission_1", | |||
vehicle: "tiltrotor" | |||
], | |||
[ | |||
name: "avoidance", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
avoidance -> MC_avoidance?
@@ -0,0 +1,21 @@ | |||
#! /bin/bash |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine for now, but we should try to think of a better way to do this. For example having it locally and running repeatedly shouldn't have to clone and build each time.
@lamping7 fair points.
|
|
@lamping7 before there was a mission check failure on the takeoff altitude. I can increase it but I also need to modify the obstacle. |
Yes, I saw that, but I'm thinking it was a result of not having global position. You don't need to increase it. I was just suggesting it for consistency. I haven't pulled up the world to visualize it, so I didn't know if you could or not easily. |
@lamping7 I can easily update the model. I'll do that. As for the mission height, I got the error even on my machine when loading the mission file. I think I messed up when adding the landing waypoint. That's way I changed the mission plan. I am seeing that the iris model doens't spawn correctly.
The camera plugin starts after the vehicle already has attempted to takeoff. Hence all the warnings that a point cloud has not been received by the avoidance. |
45bc2b8
to
228856b
Compare
9ee97e0
to
0a34db0
Compare
@TSC21 , have you ever had this error in gazebo? On my machine I have gazebo 7 (instead of 9, installed in the container) and I don't have this issue. |
@mrivi going to try on my side and let you know |
@TSC21 @lamping7 I run the contains on my laptop and retrieve the spwan log
|
c1bc94d
to
bdd9e5b
Compare
second waypoint to fit with the obstacle representation
…runs from the container entrypoint.
- avoidance.plan: AMSLAltAboveTerrain to null - mavros_posix_test_avoidance: kill avoidance console outputs - rostest_avoidance_run: default ROS_DISTRO to kinetic
05644ea
to
ba381cf
Compare
I rebased because I realized that the |
If we want to merge our efforts, you could cherry-pick 70c9c78 (Which will of course introduce a dependency on PX4/PX4-SITL_gazebo-classic#300) |
It has been long six months to get this PR working so I am not going to change anything at the moment. This is a good first step and I would like to keep the improvements in a separate PR. |
Ok, I'll work on top of this then. Let's get it in |
Thanks everyone! |
This PR is an attempt to get an automated test on the avoidance interface going to check if any future PR would brake the interface.
Test: the vehicle will fly a mission where flying a direct line between the two waypoints leads to a collision with a wall. The avoidance maneuver is simple enough to assure that the local_planner can always find a path around the wall. If the vehicle cannot finish the mission before a timeout, the test fails.
Current Work in Progress: I need to setup the catkin environment for the avoidance to run. All the steps are done in the script
rostest_avoidance_run.sh
. I see that in the other ROS tests the equivalent script is called here. How can I change it to runrostest_avoidance_run.sh
for the avoidance test?Future Work: we can use the Gazebo collision topic to detect if the vehicle has crashed